package com.aterrizar.dominio.neo.servicios;

import org.neo4j.graphdb.Node;

import com.aterrizar.dominio.Neo4J.ManagerNeo;
import com.aterrizar.dominio.Neo4J.NeoOperation;
import com.aterrizar.dominio.Neo4J.RelTypes;
import com.aterrizar.dominio.usuarios.Usuario;

public class MandarMensaje implements NeoOperation<Node>{

	private Usuario usuario;
	private String mensaje;
	private Usuario destino;
	
	public MandarMensaje(Usuario usuario, String mensaje, Usuario destino){
		this.usuario = usuario;
		this.mensaje = mensaje;
		this.destino = destino;
	}
	
	public Node execute() {
        Node usuarioNeo = ManagerNeo.runInSession(new ConsultarUsuarioNeo(usuario));
        Node destinoNeo = ManagerNeo.runInSession(new ConsultarUsuarioNeo(destino));

        Node mensajeNode = ManagerNeo.getSession().createNode();
        mensajeNode.setProperty("message", this.mensaje);


        mensajeNode.createRelationshipTo(usuarioNeo, RelTypes.EMISOR);
        mensajeNode.createRelationshipTo(destinoNeo, RelTypes.RECEPTOR);
        return mensajeNode;        
	}
	

}
